1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package com.google.common.collect.testing.google;
16
17 import static com.google.common.collect.testing.Helpers.copyToList;
18 import static com.google.common.collect.testing.features.CollectionSize.ZERO;
19 import static com.google.common.collect.testing.features.MapFeature.SUPPORTS_PUT;
20
21 import com.google.common.annotations.GwtCompatible;
22 import com.google.common.collect.ListMultimap;
23 import com.google.common.collect.testing.Helpers;
24 import com.google.common.collect.testing.features.CollectionSize;
25 import com.google.common.collect.testing.features.MapFeature;
26
27 import java.util.List;
28 import java.util.Map.Entry;
29
30
31
32
33
34
35 @GwtCompatible
36 public class ListMultimapPutTester<K, V> extends AbstractListMultimapTester<K, V> {
37
38
39 @MapFeature.Require(SUPPORTS_PUT)
40 public void testPutAddsValueAtEnd() {
41 for (K key : sampleKeys()) {
42 for (V value : sampleValues()) {
43 resetContainer();
44
45 List<V> values = multimap().get(key);
46 List<V> expectedValues = Helpers.copyToList(values);
47
48 assertTrue(multimap().put(key, value));
49 expectedValues.add(value);
50
51 assertGet(key, expectedValues);
52 assertEquals(value, values.get(values.size() - 1));
53 }
54 }
55 }
56
57 @MapFeature.Require(SUPPORTS_PUT)
58 @CollectionSize.Require(absent = ZERO)
59 public void testPutDuplicateValue() {
60 List<Entry<K, V>> entries = copyToList(multimap().entries());
61
62 for (Entry<K, V> entry : entries) {
63 resetContainer();
64
65 K k = entry.getKey();
66 V v = entry.getValue();
67
68 List<V> values = multimap().get(k);
69 List<V> expectedValues = copyToList(values);
70
71 assertTrue(multimap().put(k, v));
72 expectedValues.add(v);
73 assertGet(k, expectedValues);
74 assertEquals(v, values.get(values.size() - 1));
75 }
76 }
77 }